package com.btcode.web.core.servlet;

import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 * 欢迎页面处理器 <br/> 因为这个框架采用的是页面和数据分开访问的方式，页面也走资源访问路径，所以在访问的时候，地址会不友好 <br/>
 * 比如访问index页面会是这样：http://localhost:8080/scy/webResource/view/sw/index.html <br/>
 * 如果能变成http://localhost:8080/scy/index.html，这样的地址就会比较好，所以这里做一个映射。 <br/>
 * 给定一个欢迎页面的地址，指向这个servlet，由这个servlet服务端重定向到指定的地址，这个就是这个处理器做的事
 *
 * @author gislin
 */
public class UrlMappingServlet implements Servlet {

    private String welcomeUrl;

    public UrlMappingServlet(String welcomeUrl) {
        this.welcomeUrl = welcomeUrl;
    }

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
    }

    @Override
    public ServletConfig getServletConfig() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {

    }

    @Override
    public void service(ServletRequest arg0, ServletResponse arg1)
        throws ServletException, IOException {

        if (welcomeUrl == null || welcomeUrl.equals("")) {
            StringBuffer strBuf = new StringBuffer();
            strBuf.append("<html>");
            strBuf.append("<head>");
            strBuf.append("<title>欢迎你</title>");
            strBuf.append("</head>");
            strBuf.append("<body>");
            strBuf.append("<div>欢迎你</div>");
            strBuf.append("</body>");
            strBuf.append("</html>");
            arg1.getWriter().write(strBuf.toString());
            arg1.getWriter().flush();
            return;
        }

        arg0.setAttribute("noeCheck", true);

        arg0.getRequestDispatcher(welcomeUrl).forward(arg0, arg1);
    }

}
